
import 'package:uuid/uuid.dart';

class UUIDUtil {
  // 单例模式（可选，按需使用）
  UUIDUtil._internal();

  static final UUIDUtil _instance = UUIDUtil._internal();
  factory UUIDUtil() => _instance;

  // 创建 UUID 生成器实例
  static final Uuid _uuid = Uuid();

  /// 生成 UUID v1（基于时间戳）
  static String generateV1() => _uuid.v1();

  /// 生成 UUID v4（随机）
  static String generateV4() => _uuid.v4();

  /// 生成 UUID v5（基于命名空间和名称）
  /// [namespace] 例如 Uuid.NAMESPACE_URL
  /// [name] 自定义名称
  static String generateV5({required String namespace, required String name}) =>
      _uuid.v5(namespace, name);

  /// 移除 UUID 中的连字符（例如生成短格式）
  static String removeHyphens(String uuid) => uuid.replaceAll('-', '');

  /// 转换为大写 UUID
  static String toUpperCase(String uuid) => uuid.toUpperCase();

  /// 转换为小写 UUID
  static String toLowerCase(String uuid) => uuid.toLowerCase();
}